package cn.yjh.server.net;

import java.nio.channels.SelectionKey;

import cn.yjh.server.Dispatcher;
import cn.yjh.server.Handler;


/**
 * @author yW0041229
 * @since 2021/12/16 11:20
 */
public class DefaultDispatcher implements Dispatcher {

    public void dispatch(SelectionKey k) {
        // 这里很关键，拿到每次selectKey里面附带的处理对象，然后调用其 process()，这个对象在具体的 Handler里会进行创建，初始化的附带对象为 Acceptor（看上面构造器）
        Handler h = (Handler) (k.attachment());
        if (h != null) {
            // 调用之前注册的callback对象
            h.process();
        }
    }
}
